首先, 数据库中存放图片的字段必须为Image类型。
一、图像插入到数据库
以下代码为示意将图片插入到数据库中的操作,图片字段为Material
//从上传控件中得到表示图片的字节流
Byte[] be = this.FileUpload1.FileBytes;
//执行SQL,插入一条包括图片的记录,图片字段暂不写入数据
string sconn = "Data Source=(local);Initial Catalog=IKartoon_MainBusiness;Persist Security Info=T" +
"rue;User ID=sa;Password=goodfortune";
SqlConnection conn = new SqlConnection(sconn);
SqlCommand comm = new SqlCommand();
comm.Connection = conn;
conn.Open();
string strSQL = "insert into material(id,name,code,categoryID,orderid,operateDate)" +
"values('{0}','{1}','{2}','{3}','{4}','{5}')";
string strIn = string.Format(strSQL,
"7BAB9BBA-487C-4178-BD5B-A08ED28D3380",
"111",
"1111",
"7BAB9BBA-487C-4178-BD5B-A08ED28D33A6",
1,
System.DateTime.Now
);
comm.CommandText = strIn;
comm.ExecuteNonQuery();
//对刚才新增的记录进行修改,将图片加入,建议使用Parameter方式
string innn = "update material set material=@material where id='7BAB9BBA-487C-4178-BD5B-A08ED28D3380'";
SqlParameter pa = new SqlParameter("@material", SqlDbType.Image);
pa.Value = be;
comm.CommandText = innn;
comm.Parameters.Add(pa);
comm.ExecuteNonQuery();
二、图像在页面中显示
以下代码为从数据库中将图片取得,图片字段为Material,并且在Image控件中显示,显示是通过ImageUrl来设置,所以得到的图片在文件系统中要存储一下,将图片的URL传递给Image控件.
string sel = "select material from material";
comm.CommandText = sel;
SqlDataReader reader= comm.ExecuteReader();
byte[] resultImage=null;
while (reader.Read())
{
resultImage =(byte[]) reader.GetValue(0);
}
string dir=MapPath("TempImage");
string path=dir+@""imageName.gif";
File.WriteAllBytes(path,resultImage );
this.Image1.ImageUrl = "tempImage/abadsc.gif";